草庐IT

Docker Traefik 和 Letsencrypt 通配符

全部标签

java - Java中通配符泛型的实际使用

我最近参加了一次Java考试,其中有一个很大的部分是关于Java中的通配符泛型的。然而,关于它们在实践中的用法却鲜有提及。我们什么时候应该使用它们?让我们看一个典型的用法:voidcheck(Collectionlist){//Dosomething}文档说,这个集合不允许向列表中添加任何元素。所以基本上通配符可用于使集合只读。那是他们唯一的用途吗?有什么实际需要吗?在过去的四年里,我参与了很多Java编程项目,但我还没有看到任何项目会广泛使用通配符这样的特性。那么,从实际的角度来看,有没有什么情况下,通配符泛型是不可避免且必须的呢? 最佳答案

java.lang.Class 泛型和通配符

为什么下面的代码编译不通过?interfaceIface{}classImplimplementsIface{}classTestCase{staticClass>clazz=Impl.class;}错误是java:incompatibletypes:java.lang.Classcannotbeconvertedtojava.lang.Class>但我不明白为什么通配符没有捕获。 最佳答案 这里的子类型关系是:Class╱╲Class>Class(我在对'CannotconvertfromListtoList>'的回答中对此进行了

java - 难以理解 Java 中的通配符

我很难理解Java泛型中的通配符。具体我有以下问题:如果我们有一个LinkedList,为什么我们不能添加Object到吗?我知道它不知道列表的类型,但不会添加Object在任何情况下我们都涵盖了吗?类似于上面的问题,如果我们有LinkedList,为什么我们不能add一个Number到吗?最后,如果我们有LinkedList,为什么我们可以add一个Integer到列表中,难道我们不应该只能添加Number的父类(superclass)吗?我想我是想了解通配符一般是如何工作的,我已经阅读了有关通配符的Oracle教程以及其他一些内容,但我想我不明白为什么它们会起作用。

java - 通用子类型和通配符在 Collections.copy 中如何工作?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭9年前。Improvethisquestion这是集合复制方法(部分):publicstaticvoidcopy(Listdst,Listsrc){for(inti=0;i有4个示例调用:Listobjs=Arrays.asList(2,3.14,"four");Listints=Arrays.asList(5,6);1.Collections.copy(objs,ints);2.Collections.copy(objs,ints);3.C

java - 将通用通配符从 Java 转换为 Scala

在java.util.Collections类,我们有两个变体sort方法,一个接受具有相应Comparator的任意对象列表的方法:publicstaticvoidsort(Listlist,Comparatorcomparator)还有一个接受Comparable的列表对象:publicstatic>voidsort(Listlist)我在想如何将这种带有有限通配符的方法签名翻译成Scala。对于第一个版本,我按字面意思翻译了签名,乍一看没有编译问题:defsort[T](list:List[T],comparator:Comparator[_>:T]){???}但后来我发现我无法

java - Log4j2 通配符记录器名称

我正在使用log4j在我的一个应用程序上做一些日志记录。我的配置中的记录器看起来像这样。基本上,我想要来self编写的代码的“信息”级消息,但我希望外部库仅在出现警告或更严重的情况时才记录。这正如我所料的那样工作,但是“org.eclipse.jetty”下有很多类有没有可能做这样的事情?也就是说,我希望整个包中的所有内容都只显示warn/error/fatal。上面的方法我都试过了,没有效果。是否有“通配符”或我可以用来为包中的所有内容设置记录器的东西? 最佳答案 对于基于属性的配置,您只需采用不带任何通配符的包名称。也应该使用X

当类是泛型时,Java 通配符奇怪的行为

我认为我对Java泛型有一定的了解。此代码无法编译,我知道原因。我们只能将Animal类型或其父类(superclass)型(如对象列表)的列表传递给测试方法packagescjp.examples.generics.wildcards;importjava.util.ArrayList;importjava.util.List;classAnimal{}classMammalextendsAnimal{}classDogextendsMammal{}publicclassTest{publicvoidtest(Listcol){col.add(newAnimal());col.add

java - 可以让 JNI 支持类路径中的通配符扩展吗?

我有一个通过JNI调用Java的C二进制文件。我将CLASSPATH设置为somedir/*以获取somedir中的所有jar。当我运行二进制文件时,找不到所需的类定义。当我运行时javathat.class's.name从同一个命令行,成功找到类。如果我明确地将somedir/中的所有jar添加到类路径,一切都很好,但这会导致非常长的类路径,我想避免。通过JNI执行的JVM是否支持类路径的通配符扩展?能做到吗? 最佳答案 我通过阅读热点源码找到了答案。只有通过CLASSPATH或-cp/-classpath传递的路径才能进行通配符

Java 泛型通配符及其限制

我有一个两部分的问题Mybookstatesthis"Ifthewildcardisspecifiedwithoutanupperbound,thenonlythemethodsoftypeObjectcanbeinvokedonthevaluesofthewildcardtype"我不知道这意味着什么。这是什么意思?此外,通配符类型(无界和有界)有哪些限制?例如,如果我引用了MyClass或MyClass,我不允许通过该引用调用哪些方法。我不明白通配符允许或不允许我做什么,这可能就是我不理解书中引用的原因。我有第二部分的例子:classSomeOtherClass{[...]}cla

7和8中的Java通配符区别

我有以下代码,它在Java8上运行良好:List>KEY_NAME_CLASSES=Collections.singletonList(String.class);但是当我尝试使用Java7编译器时,出现错误:incompatibletypes:java.util.List>cannotbeconvertedtojava.util.List>为什么?有什么方法可以在Java7中使用此类通配符吗? 最佳答案 类型推断在Java-7和Java-8中有很大不同。简而言之,Java-7仅使用表达式本身来确定表达式类型,而Java-8可以使用